The present invention relates to universal asynchronous receiver-transmitters (UARTs), and in particular to interrupt codes for such UARTs.
UARTs are used in many communications applications to convert data streams from parallel to serial, enabling a serial data stream to communicate with a central processing unit or CPU. UARTs have increased in complexity over the years, with a single UART being able to serve multiple channels. Interrupt registers have been provided for the different channels to flag certain events, such as line status, a ready time out, etc. Newer, more complex UARTs have had to be compatible with the codes used for the prior UARTs to maintain compatibility with drivers already in existence or other UARTs.
One feature that has been added to some UARTs is a bus interface, such as a PCI bus interface. A separate interrupt status register containing overall status for the multiple channels is included here, and is user accessible. Because of the need for backward compatibility, the same codes that have been used for interrupts are also used here and simply written into the interrupt register, which is accessible by the user over the bus. However, as the number of channels have increased, the number of register bits required for this has also increased, limiting what can be done in one general interrupt register.